package CadastrarFilmes;
 
import java.awt.Desktop;
import java.awt.HeadlessException;
import java.awt.Toolkit;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import javax.swing.JOptionPane;
 
//Cadastro De Produtos: hue
public class Filmes {
 
String dados = "";
 
ArrayList<Filmes.Itens> Filmes = new ArrayList<>();
 
// Metodo para cadastrar os produtos
public void cadastrarFilmes(String codigo, String descricao,
double preco, String data) {
 
Filmes.Itens novoFilme = new Filmes.Itens();
novoFilme.codigo = codigo;
novoFilme.descricao = descricao;
novoFilme.preco = preco;
novoFilme.data = data;
Filmes.add(novoFilme);
 
JOptionPane.showMessageDialog(null, "Filme cadastrado com sucesso.",
"1", JOptionPane.INFORMATION_MESSAGE);
}// Fim do metodo para cadastrar os produtos
 
// Metodo para mostrar os produtos
public String mostrarFilmes() {
// String dados = "";for
for (Itens filmes : Filmes) {
dados += " Código da sala: " + filmes.codigo
+ " Descrição Filmes: " + filmes.descricao
+ " Preço da entrada: R$: " + filmes.preco
+ " Data da seção: " + filmes.data + "\n";
}
return dados;
}// Fim do metodo para mostrar os produtos
 
// Esse metodo ele apenas salva o arquivo salas.txt para depois
// voce imprimir se assim quiser
public void imprimirDados() {
 
try {
    try (BufferedWriter texto = new BufferedWriter(new FileWriter(
         "Salas.txt", true))) {
        texto.newLine();
        // escreve o texto
        texto.write(" Cadastro de filmes: ");
        // passa para a proxima linha
        texto.newLine();
        // escreve o texto
        texto.write("===============================================");
        // passa para a proxima linha
        texto.newLine();
        SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
        // escreve a data do sistema
        texto.write(sdf.format(new Date()));
        // passa para a proxima linha
        texto.newLine();
        // escreve o texto
        // texto.write(" ");
        texto.newLine();
        // escreve o texto da textarea com quebra de linha no txt
        // texto.write(mostrarProdutos().replaceAll("\n", "\r\n"));
        for (Itens filmes : Filmes) {
        texto.write(("Código da sala: " + filmes.codigo
        + " Descrição do Filme: " + filmes.descricao
        + " Preço da entrada: R$: " + filmes.preco
        + " Data da seção: " + filmes.data + "\n")
        .replaceAll("\n", "\r\n"));
        }
        // passa para a proxima linha
        texto.newLine();
        // memória
        texto.flush();
    }
JOptionPane.showMessageDialog(null, "Cadastro salvo com sucesso.",
"hue", JOptionPane.INFORMATION_MESSAGE);
} // fim try
catch (IOException | HeadlessException ex) {
Toolkit.getDefaultToolkit().beep();
JOptionPane.showMessageDialog(null, "Erro ao salvar o documento!",
"Cadastro De Filmes: 1",
JOptionPane.ERROR_MESSAGE);
 
} // fim catch
 
}
 
// Esse é o método que chama a impressora para imprimir os
// dados cadastrados se houver dados cadastrados

public void imprimir() {
 
if (!Filmes.isEmpty()) {
// File arquivo = new
File arquivo = new File(System.getProperty("user.dir")
+ "salas.txt");
PrintWriter imprimir = null;
 
try {
 
imprimir = new PrintWriter(arquivo);
imprimir.println("1 - Cadastro de Filmes: ");
imprimir.println("============================================");
imprimir.println(" ");
SimpleDateFormat sdf = new SimpleDateFormat(
"dd/MM/yyyy HH:mm:ss");
// escreve a data do sistema
imprimir.println(sdf.format(new Date()));
imprimir.println(" ");
 
for (Itens filmes : Filmes) {
imprimir.println("Código do produto: " + filmes.codigo
+ " Descrição do filme: " + filmes.descricao
+ " Preço da entrada: R$: " + filmes.preco
+ " Data da seção: " + filmes.data);
}
// imprimir arquivo txt
Desktop.getDesktop().print(arquivo);
 
} catch (Exception e) {
// tratamento de erros aqui
Toolkit.getDefaultToolkit().beep();
JOptionPane.showMessageDialog(null,
"Erro ao imprimir o documento!",
"Cadastro De Filmes",
JOptionPane.ERROR_MESSAGE);
} finally {
 
if (imprimir != null) {
// Fecha o arquivo txt
imprimir.close();
// Deleta o arquivo criado depois de fechar a aplicação
arquivo.deleteOnExit();
}
}
 
} else {
Toolkit.getDefaultToolkit().beep();
JOptionPane.showMessageDialog(null, "Não há salas cadastradas!",
"Cadastro De Filmes",
JOptionPane.ERROR_MESSAGE);
}
 
}
 
class Itens {
private String codigo;
private String descricao;
private double preco;
private String data;
}
}
